def name='ййй'

println "Hello $name!"

/*int[] f=new int[l[0].formatOrderList.size()];
int i=0;
l[0].formatOrderList.each{
    f[i++]=it.format.length;
//    stateWindow.logPrintln(""+it.format.length);
    return;
}*/
int[] ms=[600,630,650,700,730,750,800,820,840,844,850];
List l=testGenerator.generateTests(2,20, 100,1,1,100,100);
stateWindow.setProgressBarMinimum(0);
int max=l.size*ms.length;
stateWindow.setProgressBarMaximum(l.size*ms.length);
stateWindow.setProgressBarVisible(true);
List<Object[]> output=new ArrayList(max);
Object[] q=["Кол-во форматов",new Integer(600),new Integer(630),new Integer(650),new Integer(700),new Integer(730),new Integer(750),new Integer(800),new Integer(820),new Integer(840),new Integer(844),new Integer(850)];
output.add(q);
int ct=0;
l.each{    
    /*for(int i=0;i<r.length;i++)
        r[i]=0;*/
    
    int[] tst=new int[it.formatOrderList.size]
    i=0;
    it.formatOrderList.each{tst[i++]=it.format.length/10;/*r[i+ms.length]=it.format.length/10;*/  return;}
    long[] b=PatternCalc.getPatternCount(850,tst)
    for(i=0;i<ms.length;i++)
    {
        Object[] r=new Object[4];
        r[0]=new Integer(it.formatOrderList.size);
        r[1]=new Integer(ms[i]);
        r[2]=0.0;
        tst.each{r[2]+=(double)ms[i]/it};
        r[3]=new Long(b[ms[i]]);//PatternCalc.getPatternCount(ms[i],tst)
        output.add(r);        
        stateWindow.logPrintln(""+r+"-"+tst);
        stateWindow.setProgressBarValue(++ct);
        stateWindow.setText(ct+"/"+max);
    }
    b=null
    
}
//output.add(new Integer[10]);
stateWindow.logPrint(""+output);
exportManager.exportToExcel("d:\\result.xls",output);


class PatternCalc
{
static int[][] a=new int[851][20];
  public static long[] getPatternCount(msize,fmts)
  {

    int s=msize;
    int m=fmts.length;
    def l=fmts;
    for(int i=1;i<=m;i++)
    {
      for (int j=0;j<=s;j++)
      a[j][i-1]=0;
    }
    for(int i=1;i<=m;i++)
    {
      for(int j=l[i-1];j<=s;j++)
      {
        int x=0;
        for(int k=1;k<=m;k++)
        {
          x+=a[j-l[i-1]][k-1];
        }
        a[j][i-1]=x+1;
      }
    }
    int x=0;
    long[] b=new long[s+1];
    for(int i=1;i<=m;i++)
    {
      x=x+a[s][i-1];
      for(int j=0;j<=s;j++)
       b[j]=b[j]+a[j][i-1];
    }
    return b;
  }
}

